/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package com.unwiredgrain.modeling.sscm;


import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see com.unwiredgrain.modeling.sscm.SSCMFactory
 * @model kind="package"
 * @generated
 */
public interface SSCMPackage extends EPackage {
	/**
	 * The package name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNAME = "sscm";
	/**
	 * The package namespace URI.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_URI = "http://www.unwiredgrain.com/simple-static-component-model/1.0";
	/**
	 * The package namespace name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_PREFIX = "sscm";
	/**
	 * The singleton instance of the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	SSCMPackage eINSTANCE = com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl.init();
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.NamedElementImpl <em>Named Element</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.NamedElementImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getNamedElement()
	 * @generated
	 */
	int NAMED_ELEMENT = 14;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int NAMED_ELEMENT__NAME = 0;
	/**
	 * The number of structural features of the '<em>Named Element</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int NAMED_ELEMENT_FEATURE_COUNT = 1;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.TemplateImpl <em>Template</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.TemplateImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTemplate()
	 * @generated
	 */
	int TEMPLATE = 23;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.ProtocolImpl <em>Protocol</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.ProtocolImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getProtocol()
	 * @generated
	 */
	int PROTOCOL = 21;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.ConnectorImpl <em>Connector</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.ConnectorImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getConnector()
	 * @generated
	 */
	int CONNECTOR = 4;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.BasicModuleImpl <em>Basic Module</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.BasicModuleImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getBasicModule()
	 * @generated
	 */
	int BASIC_MODULE = 0;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.ModuleImpl <em>Module</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.ModuleImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getModule()
	 * @generated
	 */
	int MODULE = 15;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.CompositeModuleImpl <em>Composite Module</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.CompositeModuleImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getCompositeModule()
	 * @generated
	 */
	int COMPOSITE_MODULE = 3;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.PackageImpl <em>Package</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.PackageImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getPackage()
	 * @generated
	 */
	int PACKAGE = 20;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.ClassifierImpl <em>Classifier</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.ClassifierImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getClassifier()
	 * @generated
	 */
	int CLASSIFIER = 1;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MODULE__NAME = NAMED_ELEMENT__NAME;
	/**
	 * The feature id for the '<em><b>Interface</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MODULE__INTERFACE = NAMED_ELEMENT_FEATURE_COUNT + 0;
	/**
	 * The number of structural features of the '<em>Module</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MODULE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int BASIC_MODULE__NAME = MODULE__NAME;
	/**
	 * The feature id for the '<em><b>Interface</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int BASIC_MODULE__INTERFACE = MODULE__INTERFACE;
	/**
	 * The number of structural features of the '<em>Basic Module</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int BASIC_MODULE_FEATURE_COUNT = MODULE_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TEMPLATE__NAME = NAMED_ELEMENT__NAME;
	/**
	 * The feature id for the '<em><b>Template Parameters</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TEMPLATE__TEMPLATE_PARAMETERS = NAMED_ELEMENT_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Template</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TEMPLATE__TEMPLATE = NAMED_ELEMENT_FEATURE_COUNT + 1;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TEMPLATE__CPP_NAME = NAMED_ELEMENT_FEATURE_COUNT + 2;
	/**
	 * The feature id for the '<em><b>Cpp Template Parameters</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TEMPLATE__CPP_TEMPLATE_PARAMETERS = NAMED_ELEMENT_FEATURE_COUNT + 3;
	/**
	 * The number of structural features of the '<em>Template</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TEMPLATE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 4;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CLASSIFIER__NAME = TEMPLATE__NAME;
	/**
	 * The feature id for the '<em><b>Template Parameters</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CLASSIFIER__TEMPLATE_PARAMETERS = TEMPLATE__TEMPLATE_PARAMETERS;
	/**
	 * The feature id for the '<em><b>Template</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CLASSIFIER__TEMPLATE = TEMPLATE__TEMPLATE;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CLASSIFIER__CPP_NAME = TEMPLATE__CPP_NAME;
	/**
	 * The feature id for the '<em><b>Cpp Template Parameters</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CLASSIFIER__CPP_TEMPLATE_PARAMETERS = TEMPLATE__CPP_TEMPLATE_PARAMETERS;
	/**
	 * The number of structural features of the '<em>Classifier</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CLASSIFIER_FEATURE_COUNT = TEMPLATE_FEATURE_COUNT + 0;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.SocketImpl <em>Socket</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.SocketImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getSocket()
	 * @generated
	 */
	int SOCKET = 2;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SOCKET__NAME = NAMED_ELEMENT__NAME;
	/**
	 * The feature id for the '<em><b>Interface</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SOCKET__INTERFACE = NAMED_ELEMENT_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Interface Template Instantiation</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SOCKET__INTERFACE_TEMPLATE_INSTANTIATION = NAMED_ELEMENT_FEATURE_COUNT + 1;
	/**
	 * The feature id for the '<em><b>Module</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SOCKET__MODULE = NAMED_ELEMENT_FEATURE_COUNT + 2;
	/**
	 * The feature id for the '<em><b>Inner Connectors</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SOCKET__INNER_CONNECTORS = NAMED_ELEMENT_FEATURE_COUNT + 3;
	/**
	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SOCKET__ENABLED = NAMED_ELEMENT_FEATURE_COUNT + 4;
	/**
	 * The number of structural features of the '<em>Socket</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SOCKET_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 5;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int COMPOSITE_MODULE__NAME = MODULE__NAME;
	/**
	 * The feature id for the '<em><b>Interface</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int COMPOSITE_MODULE__INTERFACE = MODULE__INTERFACE;
	/**
	 * The feature id for the '<em><b>Sockets</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int COMPOSITE_MODULE__SOCKETS = MODULE_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Outer Connectors</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int COMPOSITE_MODULE__OUTER_CONNECTORS = MODULE_FEATURE_COUNT + 1;
	/**
	 * The feature id for the '<em><b>Bindings</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int COMPOSITE_MODULE__BINDINGS = MODULE_FEATURE_COUNT + 2;
	/**
	 * The number of structural features of the '<em>Composite Module</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int COMPOSITE_MODULE_FEATURE_COUNT = MODULE_FEATURE_COUNT + 3;
	/**
	 * The feature id for the '<em><b>Port</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CONNECTOR__PORT = 0;
	/**
	 * The number of structural features of the '<em>Connector</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CONNECTOR_FEATURE_COUNT = 1;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.TypedElementImpl <em>Typed Element</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.TypedElementImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTypedElement()
	 * @generated
	 */
	int TYPED_ELEMENT = 27;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.OperationParameterImpl <em>Operation Parameter</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.OperationParameterImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getOperationParameter()
	 * @generated
	 */
	int OPERATION_PARAMETER = 19;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.OperationImpl <em>Operation</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.OperationImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getOperation()
	 * @generated
	 */
	int OPERATION = 18;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.TemplateParameterImpl <em>Template Parameter</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.TemplateParameterImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTemplateParameter()
	 * @generated
	 */
	int TEMPLATE_PARAMETER = 26;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.TemplateInstantiationImpl <em>Template Instantiation</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.TemplateInstantiationImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTemplateInstantiation()
	 * @generated
	 */
	int TEMPLATE_INSTANTIATION = 25;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TEMPLATE_INSTANTIATION__CPP_NAME = 0;
	/**
	 * The feature id for the '<em><b>Argument</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TEMPLATE_INSTANTIATION__ARGUMENT = 1;
	/**
	 * The feature id for the '<em><b>Sub Arguments</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TEMPLATE_INSTANTIATION__SUB_ARGUMENTS = 2;
	/**
	 * The number of structural features of the '<em>Template Instantiation</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TEMPLATE_INSTANTIATION_FEATURE_COUNT = 3;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.CppTemplateParameterImpl <em>Cpp Template Parameter</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.CppTemplateParameterImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getCppTemplateParameter()
	 * @generated
	 */
	int CPP_TEMPLATE_PARAMETER = 6;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.TypeTemplateParameterImpl <em>Type Template Parameter</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.TypeTemplateParameterImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTypeTemplateParameter()
	 * @generated
	 */
	int TYPE_TEMPLATE_PARAMETER = 30;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.NonTypeTemplateParameterImpl <em>Non Type Template Parameter</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.NonTypeTemplateParameterImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getNonTypeTemplateParameter()
	 * @generated
	 */
	int NON_TYPE_TEMPLATE_PARAMETER = 17;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.CppTemplateInstantiationImpl <em>Cpp Template Instantiation</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.CppTemplateInstantiationImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getCppTemplateInstantiation()
	 * @generated
	 */
	int CPP_TEMPLATE_INSTANTIATION = 5;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CPP_TEMPLATE_INSTANTIATION__CPP_NAME = TEMPLATE_INSTANTIATION__CPP_NAME;
	/**
	 * The feature id for the '<em><b>Argument</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CPP_TEMPLATE_INSTANTIATION__ARGUMENT = TEMPLATE_INSTANTIATION__ARGUMENT;
	/**
	 * The feature id for the '<em><b>Sub Arguments</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CPP_TEMPLATE_INSTANTIATION__SUB_ARGUMENTS = TEMPLATE_INSTANTIATION__SUB_ARGUMENTS;
	/**
	 * The number of structural features of the '<em>Cpp Template Instantiation</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CPP_TEMPLATE_INSTANTIATION_FEATURE_COUNT = TEMPLATE_INSTANTIATION_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TEMPLATE_PARAMETER__NAME = NAMED_ELEMENT__NAME;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TEMPLATE_PARAMETER__CPP_NAME = NAMED_ELEMENT_FEATURE_COUNT + 0;
	/**
	 * The number of structural features of the '<em>Template Parameter</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TEMPLATE_PARAMETER_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CPP_TEMPLATE_PARAMETER__NAME = TEMPLATE_PARAMETER__NAME;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CPP_TEMPLATE_PARAMETER__CPP_NAME = TEMPLATE_PARAMETER__CPP_NAME;
	/**
	 * The number of structural features of the '<em>Cpp Template Parameter</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CPP_TEMPLATE_PARAMETER_FEATURE_COUNT = TEMPLATE_PARAMETER_FEATURE_COUNT + 0;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.InterfaceImpl <em>Interface</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.InterfaceImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getInterface()
	 * @generated
	 */
	int INTERFACE = 7;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTERFACE__NAME = TEMPLATE__NAME;
	/**
	 * The feature id for the '<em><b>Template Parameters</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTERFACE__TEMPLATE_PARAMETERS = TEMPLATE__TEMPLATE_PARAMETERS;
	/**
	 * The feature id for the '<em><b>Template</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTERFACE__TEMPLATE = TEMPLATE__TEMPLATE;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTERFACE__CPP_NAME = TEMPLATE__CPP_NAME;
	/**
	 * The feature id for the '<em><b>Cpp Template Parameters</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTERFACE__CPP_TEMPLATE_PARAMETERS = TEMPLATE__CPP_TEMPLATE_PARAMETERS;
	/**
	 * The feature id for the '<em><b>Ports</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTERFACE__PORTS = TEMPLATE_FEATURE_COUNT + 0;
	/**
	 * The number of structural features of the '<em>Interface</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTERFACE_FEATURE_COUNT = TEMPLATE_FEATURE_COUNT + 1;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.InterfaceTemplateInstantiationImpl <em>Interface Template Instantiation</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.InterfaceTemplateInstantiationImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getInterfaceTemplateInstantiation()
	 * @generated
	 */
	int INTERFACE_TEMPLATE_INSTANTIATION = 8;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTERFACE_TEMPLATE_INSTANTIATION__CPP_NAME = TEMPLATE_INSTANTIATION__CPP_NAME;
	/**
	 * The feature id for the '<em><b>Argument</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTERFACE_TEMPLATE_INSTANTIATION__ARGUMENT = TEMPLATE_INSTANTIATION__ARGUMENT;
	/**
	 * The feature id for the '<em><b>Sub Arguments</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTERFACE_TEMPLATE_INSTANTIATION__SUB_ARGUMENTS = TEMPLATE_INSTANTIATION__SUB_ARGUMENTS;
	/**
	 * The feature id for the '<em><b>Interface</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTERFACE_TEMPLATE_INSTANTIATION__INTERFACE = TEMPLATE_INSTANTIATION_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Sub Cpp Arguments</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTERFACE_TEMPLATE_INSTANTIATION__SUB_CPP_ARGUMENTS = TEMPLATE_INSTANTIATION_FEATURE_COUNT + 1;
	/**
	 * The number of structural features of the '<em>Interface Template Instantiation</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTERFACE_TEMPLATE_INSTANTIATION_FEATURE_COUNT = TEMPLATE_INSTANTIATION_FEATURE_COUNT + 2;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.TypeTemplateInstantiationImpl <em>Type Template Instantiation</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.TypeTemplateInstantiationImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTypeTemplateInstantiation()
	 * @generated
	 */
	int TYPE_TEMPLATE_INSTANTIATION = 29;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.NonTypeTemplateInstantiationImpl <em>Non Type Template Instantiation</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.NonTypeTemplateInstantiationImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getNonTypeTemplateInstantiation()
	 * @generated
	 */
	int NON_TYPE_TEMPLATE_INSTANTIATION = 16;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.IntTemplateParameterImpl <em>Int Template Parameter</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.IntTemplateParameterImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getIntTemplateParameter()
	 * @generated
	 */
	int INT_TEMPLATE_PARAMETER = 13;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.IntTemplateInstantiationImpl <em>Int Template Instantiation</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.IntTemplateInstantiationImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getIntTemplateInstantiation()
	 * @generated
	 */
	int INT_TEMPLATE_INSTANTIATION = 12;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.ValueImpl <em>Value</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.ValueImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getValue()
	 * @generated
	 */
	int VALUE = 31;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.IntegerValueImpl <em>Integer Value</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.IntegerValueImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getIntegerValue()
	 * @generated
	 */
	int INTEGER_VALUE = 10;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.TemplateArgument <em>Template Argument</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.TemplateArgument
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTemplateArgument()
	 * @generated
	 */
	int TEMPLATE_ARGUMENT = 24;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.TypeTemplateArgument <em>Type Template Argument</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.TypeTemplateArgument
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTypeTemplateArgument()
	 * @generated
	 */
	int TYPE_TEMPLATE_ARGUMENT = 28;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.IntTemplateArgument <em>Int Template Argument</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.IntTemplateArgument
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getIntTemplateArgument()
	 * @generated
	 */
	int INT_TEMPLATE_ARGUMENT = 11;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.ProtocolTemplateInstantiationImpl <em>Protocol Template Instantiation</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.ProtocolTemplateInstantiationImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getProtocolTemplateInstantiation()
	 * @generated
	 */
	int PROTOCOL_TEMPLATE_INSTANTIATION = 22;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.PortImpl <em>Port</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.PortImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getPort()
	 * @generated
	 */
	int PORT = 9;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PORT__NAME = NAMED_ELEMENT__NAME;
	/**
	 * The feature id for the '<em><b>Protocol</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PORT__PROTOCOL = NAMED_ELEMENT_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Uid</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PORT__UID = NAMED_ELEMENT_FEATURE_COUNT + 1;
	/**
	 * The feature id for the '<em><b>Direction</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PORT__DIRECTION = NAMED_ELEMENT_FEATURE_COUNT + 2;
	/**
	 * The feature id for the '<em><b>Multiple</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PORT__MULTIPLE = NAMED_ELEMENT_FEATURE_COUNT + 3;
	/**
	 * The feature id for the '<em><b>Protocol Template Instantiation</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PORT__PROTOCOL_TEMPLATE_INSTANTIATION = NAMED_ELEMENT_FEATURE_COUNT + 4;
	/**
	 * The feature id for the '<em><b>Optional</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PORT__OPTIONAL = NAMED_ELEMENT_FEATURE_COUNT + 5;
	/**
	 * The feature id for the '<em><b>Protocol Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PORT__PROTOCOL_NAME = NAMED_ELEMENT_FEATURE_COUNT + 6;
	/**
	 * The number of structural features of the '<em>Port</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PORT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 7;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int VALUE__NAME = TEMPLATE__NAME;
	/**
	 * The feature id for the '<em><b>Template Parameters</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int VALUE__TEMPLATE_PARAMETERS = TEMPLATE__TEMPLATE_PARAMETERS;
	/**
	 * The feature id for the '<em><b>Template</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int VALUE__TEMPLATE = TEMPLATE__TEMPLATE;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int VALUE__CPP_NAME = TEMPLATE__CPP_NAME;
	/**
	 * The feature id for the '<em><b>Cpp Template Parameters</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int VALUE__CPP_TEMPLATE_PARAMETERS = TEMPLATE__CPP_TEMPLATE_PARAMETERS;
	/**
	 * The number of structural features of the '<em>Value</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int VALUE_FEATURE_COUNT = TEMPLATE_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTEGER_VALUE__NAME = VALUE__NAME;
	/**
	 * The feature id for the '<em><b>Template Parameters</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTEGER_VALUE__TEMPLATE_PARAMETERS = VALUE__TEMPLATE_PARAMETERS;
	/**
	 * The feature id for the '<em><b>Template</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTEGER_VALUE__TEMPLATE = VALUE__TEMPLATE;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTEGER_VALUE__CPP_NAME = VALUE__CPP_NAME;
	/**
	 * The feature id for the '<em><b>Cpp Template Parameters</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTEGER_VALUE__CPP_TEMPLATE_PARAMETERS = VALUE__CPP_TEMPLATE_PARAMETERS;
	/**
	 * The feature id for the '<em><b>Value</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTEGER_VALUE__VALUE = VALUE_FEATURE_COUNT + 0;
	/**
	 * The number of structural features of the '<em>Integer Value</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INTEGER_VALUE_FEATURE_COUNT = VALUE_FEATURE_COUNT + 1;
	/**
	 * The number of structural features of the '<em>Template Argument</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TEMPLATE_ARGUMENT_FEATURE_COUNT = 0;
	/**
	 * The number of structural features of the '<em>Int Template Argument</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INT_TEMPLATE_ARGUMENT_FEATURE_COUNT = TEMPLATE_ARGUMENT_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int NON_TYPE_TEMPLATE_INSTANTIATION__CPP_NAME = CPP_TEMPLATE_INSTANTIATION__CPP_NAME;
	/**
	 * The feature id for the '<em><b>Argument</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int NON_TYPE_TEMPLATE_INSTANTIATION__ARGUMENT = CPP_TEMPLATE_INSTANTIATION__ARGUMENT;
	/**
	 * The feature id for the '<em><b>Sub Arguments</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int NON_TYPE_TEMPLATE_INSTANTIATION__SUB_ARGUMENTS = CPP_TEMPLATE_INSTANTIATION__SUB_ARGUMENTS;
	/**
	 * The number of structural features of the '<em>Non Type Template Instantiation</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int NON_TYPE_TEMPLATE_INSTANTIATION_FEATURE_COUNT = CPP_TEMPLATE_INSTANTIATION_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INT_TEMPLATE_INSTANTIATION__CPP_NAME = NON_TYPE_TEMPLATE_INSTANTIATION__CPP_NAME;
	/**
	 * The feature id for the '<em><b>Argument</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INT_TEMPLATE_INSTANTIATION__ARGUMENT = NON_TYPE_TEMPLATE_INSTANTIATION__ARGUMENT;
	/**
	 * The feature id for the '<em><b>Sub Arguments</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INT_TEMPLATE_INSTANTIATION__SUB_ARGUMENTS = NON_TYPE_TEMPLATE_INSTANTIATION__SUB_ARGUMENTS;
	/**
	 * The feature id for the '<em><b>Integer Value</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INT_TEMPLATE_INSTANTIATION__INTEGER_VALUE = NON_TYPE_TEMPLATE_INSTANTIATION_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Int Argument</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INT_TEMPLATE_INSTANTIATION__INT_ARGUMENT = NON_TYPE_TEMPLATE_INSTANTIATION_FEATURE_COUNT + 1;
	/**
	 * The feature id for the '<em><b>Value</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INT_TEMPLATE_INSTANTIATION__VALUE = NON_TYPE_TEMPLATE_INSTANTIATION_FEATURE_COUNT + 2;
	/**
	 * The feature id for the '<em><b>Int Template Parameter</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INT_TEMPLATE_INSTANTIATION__INT_TEMPLATE_PARAMETER = NON_TYPE_TEMPLATE_INSTANTIATION_FEATURE_COUNT + 3;
	/**
	 * The number of structural features of the '<em>Int Template Instantiation</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INT_TEMPLATE_INSTANTIATION_FEATURE_COUNT = NON_TYPE_TEMPLATE_INSTANTIATION_FEATURE_COUNT + 4;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int NON_TYPE_TEMPLATE_PARAMETER__NAME = CPP_TEMPLATE_PARAMETER__NAME;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int NON_TYPE_TEMPLATE_PARAMETER__CPP_NAME = CPP_TEMPLATE_PARAMETER__CPP_NAME;
	/**
	 * The number of structural features of the '<em>Non Type Template Parameter</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int NON_TYPE_TEMPLATE_PARAMETER_FEATURE_COUNT = CPP_TEMPLATE_PARAMETER_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INT_TEMPLATE_PARAMETER__NAME = NON_TYPE_TEMPLATE_PARAMETER__NAME;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INT_TEMPLATE_PARAMETER__CPP_NAME = NON_TYPE_TEMPLATE_PARAMETER__CPP_NAME;
	/**
	 * The number of structural features of the '<em>Int Template Parameter</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INT_TEMPLATE_PARAMETER_FEATURE_COUNT = NON_TYPE_TEMPLATE_PARAMETER_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPED_ELEMENT__NAME = NAMED_ELEMENT__NAME;
	/**
	 * The feature id for the '<em><b>Type Template Instantiation</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPED_ELEMENT__TYPE_TEMPLATE_INSTANTIATION = NAMED_ELEMENT_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Type</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPED_ELEMENT__TYPE = NAMED_ELEMENT_FEATURE_COUNT + 1;
	/**
	 * The feature id for the '<em><b>Modifier</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPED_ELEMENT__MODIFIER = NAMED_ELEMENT_FEATURE_COUNT + 2;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPED_ELEMENT__CPP_NAME = NAMED_ELEMENT_FEATURE_COUNT + 3;
	/**
	 * The feature id for the '<em><b>Type Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPED_ELEMENT__TYPE_NAME = NAMED_ELEMENT_FEATURE_COUNT + 4;
	/**
	 * The number of structural features of the '<em>Typed Element</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPED_ELEMENT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 5;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION__NAME = TYPED_ELEMENT__NAME;
	/**
	 * The feature id for the '<em><b>Type Template Instantiation</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION__TYPE_TEMPLATE_INSTANTIATION = TYPED_ELEMENT__TYPE_TEMPLATE_INSTANTIATION;
	/**
	 * The feature id for the '<em><b>Type</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION__TYPE = TYPED_ELEMENT__TYPE;
	/**
	 * The feature id for the '<em><b>Modifier</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION__MODIFIER = TYPED_ELEMENT__MODIFIER;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION__CPP_NAME = TYPED_ELEMENT__CPP_NAME;
	/**
	 * The feature id for the '<em><b>Type Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION__TYPE_NAME = TYPED_ELEMENT__TYPE_NAME;
	/**
	 * The feature id for the '<em><b>Direction</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION__DIRECTION = TYPED_ELEMENT_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Operation Parameters</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION__OPERATION_PARAMETERS = TYPED_ELEMENT_FEATURE_COUNT + 1;
	/**
	 * The feature id for the '<em><b>Full Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION__FULL_NAME = TYPED_ELEMENT_FEATURE_COUNT + 2;
	/**
	 * The number of structural features of the '<em>Operation</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION_FEATURE_COUNT = TYPED_ELEMENT_FEATURE_COUNT + 3;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION_PARAMETER__NAME = TYPED_ELEMENT__NAME;
	/**
	 * The feature id for the '<em><b>Type Template Instantiation</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION_PARAMETER__TYPE_TEMPLATE_INSTANTIATION = TYPED_ELEMENT__TYPE_TEMPLATE_INSTANTIATION;
	/**
	 * The feature id for the '<em><b>Type</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION_PARAMETER__TYPE = TYPED_ELEMENT__TYPE;
	/**
	 * The feature id for the '<em><b>Modifier</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION_PARAMETER__MODIFIER = TYPED_ELEMENT__MODIFIER;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION_PARAMETER__CPP_NAME = TYPED_ELEMENT__CPP_NAME;
	/**
	 * The feature id for the '<em><b>Type Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION_PARAMETER__TYPE_NAME = TYPED_ELEMENT__TYPE_NAME;
	/**
	 * The number of structural features of the '<em>Operation Parameter</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION_PARAMETER_FEATURE_COUNT = TYPED_ELEMENT_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PACKAGE__NAME = NAMED_ELEMENT__NAME;
	/**
	 * The feature id for the '<em><b>Super Package</b></em>' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PACKAGE__SUPER_PACKAGE = NAMED_ELEMENT_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Sub Packages</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PACKAGE__SUB_PACKAGES = NAMED_ELEMENT_FEATURE_COUNT + 1;
	/**
	 * The feature id for the '<em><b>Classifiers</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PACKAGE__CLASSIFIERS = NAMED_ELEMENT_FEATURE_COUNT + 2;
	/**
	 * The feature id for the '<em><b>Protocols</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PACKAGE__PROTOCOLS = NAMED_ELEMENT_FEATURE_COUNT + 3;
	/**
	 * The feature id for the '<em><b>Facades</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PACKAGE__FACADES = NAMED_ELEMENT_FEATURE_COUNT + 4;
	/**
	 * The feature id for the '<em><b>Modules</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PACKAGE__MODULES = NAMED_ELEMENT_FEATURE_COUNT + 5;
	/**
	 * The number of structural features of the '<em>Package</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PACKAGE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 6;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROTOCOL__NAME = TEMPLATE__NAME;
	/**
	 * The feature id for the '<em><b>Template Parameters</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROTOCOL__TEMPLATE_PARAMETERS = TEMPLATE__TEMPLATE_PARAMETERS;
	/**
	 * The feature id for the '<em><b>Template</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROTOCOL__TEMPLATE = TEMPLATE__TEMPLATE;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROTOCOL__CPP_NAME = TEMPLATE__CPP_NAME;
	/**
	 * The feature id for the '<em><b>Cpp Template Parameters</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROTOCOL__CPP_TEMPLATE_PARAMETERS = TEMPLATE__CPP_TEMPLATE_PARAMETERS;
	/**
	 * The feature id for the '<em><b>Operations</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROTOCOL__OPERATIONS = TEMPLATE_FEATURE_COUNT + 0;
	/**
	 * The number of structural features of the '<em>Protocol</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROTOCOL_FEATURE_COUNT = TEMPLATE_FEATURE_COUNT + 1;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROTOCOL_TEMPLATE_INSTANTIATION__CPP_NAME = TEMPLATE_INSTANTIATION__CPP_NAME;
	/**
	 * The feature id for the '<em><b>Argument</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROTOCOL_TEMPLATE_INSTANTIATION__ARGUMENT = TEMPLATE_INSTANTIATION__ARGUMENT;
	/**
	 * The feature id for the '<em><b>Sub Arguments</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROTOCOL_TEMPLATE_INSTANTIATION__SUB_ARGUMENTS = TEMPLATE_INSTANTIATION__SUB_ARGUMENTS;
	/**
	 * The feature id for the '<em><b>Protocol</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROTOCOL_TEMPLATE_INSTANTIATION__PROTOCOL = TEMPLATE_INSTANTIATION_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Sub Cpp Arguments</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROTOCOL_TEMPLATE_INSTANTIATION__SUB_CPP_ARGUMENTS = TEMPLATE_INSTANTIATION_FEATURE_COUNT + 1;
	/**
	 * The number of structural features of the '<em>Protocol Template Instantiation</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROTOCOL_TEMPLATE_INSTANTIATION_FEATURE_COUNT = TEMPLATE_INSTANTIATION_FEATURE_COUNT + 2;
	/**
	 * The number of structural features of the '<em>Type Template Argument</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPE_TEMPLATE_ARGUMENT_FEATURE_COUNT = TEMPLATE_ARGUMENT_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPE_TEMPLATE_INSTANTIATION__CPP_NAME = CPP_TEMPLATE_INSTANTIATION__CPP_NAME;
	/**
	 * The feature id for the '<em><b>Argument</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPE_TEMPLATE_INSTANTIATION__ARGUMENT = CPP_TEMPLATE_INSTANTIATION__ARGUMENT;
	/**
	 * The feature id for the '<em><b>Sub Arguments</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPE_TEMPLATE_INSTANTIATION__SUB_ARGUMENTS = CPP_TEMPLATE_INSTANTIATION__SUB_ARGUMENTS;
	/**
	 * The feature id for the '<em><b>Type Argument</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPE_TEMPLATE_INSTANTIATION__TYPE_ARGUMENT = CPP_TEMPLATE_INSTANTIATION_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Sub Cpp Arguments</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPE_TEMPLATE_INSTANTIATION__SUB_CPP_ARGUMENTS = CPP_TEMPLATE_INSTANTIATION_FEATURE_COUNT + 1;
	/**
	 * The number of structural features of the '<em>Type Template Instantiation</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPE_TEMPLATE_INSTANTIATION_FEATURE_COUNT = CPP_TEMPLATE_INSTANTIATION_FEATURE_COUNT + 2;
	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPE_TEMPLATE_PARAMETER__NAME = CPP_TEMPLATE_PARAMETER__NAME;
	/**
	 * The feature id for the '<em><b>Cpp Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPE_TEMPLATE_PARAMETER__CPP_NAME = CPP_TEMPLATE_PARAMETER__CPP_NAME;
	/**
	 * The number of structural features of the '<em>Type Template Parameter</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TYPE_TEMPLATE_PARAMETER_FEATURE_COUNT = CPP_TEMPLATE_PARAMETER_FEATURE_COUNT + 0;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.BindingImpl <em>Binding</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.BindingImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getBinding()
	 * @generated
	 */
	int BINDING = 32;
	/**
	 * The number of structural features of the '<em>Binding</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int BINDING_FEATURE_COUNT = 0;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.WireImpl <em>Wire</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.WireImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getWire()
	 * @generated
	 */
	int WIRE = 33;
	/**
	 * The feature id for the '<em><b>User</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int WIRE__USER = BINDING_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Provider</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int WIRE__PROVIDER = BINDING_FEATURE_COUNT + 1;
	/**
	 * The feature id for the '<em><b>User Index</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int WIRE__USER_INDEX = BINDING_FEATURE_COUNT + 2;
	/**
	 * The feature id for the '<em><b>Provider Index</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int WIRE__PROVIDER_INDEX = BINDING_FEATURE_COUNT + 3;
	/**
	 * The number of structural features of the '<em>Wire</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int WIRE_FEATURE_COUNT = BINDING_FEATURE_COUNT + 4;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.ExportImpl <em>Export</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.ExportImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getExport()
	 * @generated
	 */
	int EXPORT = 34;
	/**
	 * The feature id for the '<em><b>Input</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int EXPORT__INPUT = BINDING_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Output</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int EXPORT__OUTPUT = BINDING_FEATURE_COUNT + 1;
	/**
	 * The feature id for the '<em><b>Inner Index</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int EXPORT__INNER_INDEX = BINDING_FEATURE_COUNT + 2;
	/**
	 * The feature id for the '<em><b>Outer Index</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int EXPORT__OUTER_INDEX = BINDING_FEATURE_COUNT + 3;
	/**
	 * The number of structural features of the '<em>Export</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int EXPORT_FEATURE_COUNT = BINDING_FEATURE_COUNT + 4;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.InnerConnectorImpl <em>Inner Connector</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.InnerConnectorImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getInnerConnector()
	 * @generated
	 */
	int INNER_CONNECTOR = 35;
	/**
	 * The feature id for the '<em><b>Port</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INNER_CONNECTOR__PORT = CONNECTOR__PORT;
	/**
	 * The feature id for the '<em><b>Exports</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INNER_CONNECTOR__EXPORTS = CONNECTOR_FEATURE_COUNT + 0;
	/**
	 * The feature id for the '<em><b>Use</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INNER_CONNECTOR__USE = CONNECTOR_FEATURE_COUNT + 1;
	/**
	 * The feature id for the '<em><b>Provide</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INNER_CONNECTOR__PROVIDE = CONNECTOR_FEATURE_COUNT + 2;
	/**
	 * The number of structural features of the '<em>Inner Connector</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INNER_CONNECTOR_FEATURE_COUNT = CONNECTOR_FEATURE_COUNT + 3;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.impl.OuterConnectorImpl <em>Outer Connector</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.impl.OuterConnectorImpl
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getOuterConnector()
	 * @generated
	 */
	int OUTER_CONNECTOR = 36;
	/**
	 * The feature id for the '<em><b>Port</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OUTER_CONNECTOR__PORT = CONNECTOR__PORT;
	/**
	 * The feature id for the '<em><b>Exports</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OUTER_CONNECTOR__EXPORTS = CONNECTOR_FEATURE_COUNT + 0;
	/**
	 * The number of structural features of the '<em>Outer Connector</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OUTER_CONNECTOR_FEATURE_COUNT = CONNECTOR_FEATURE_COUNT + 1;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.PortDirection <em>Port Direction</em>}' enum.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.PortDirection
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getPortDirection()
	 * @generated
	 */
	int PORT_DIRECTION = 37;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.OperationDirection <em>Operation Direction</em>}' enum.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.OperationDirection
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getOperationDirection()
	 * @generated
	 */
	int OPERATION_DIRECTION = 38;
	/**
	 * The meta object id for the '{@link com.unwiredgrain.modeling.sscm.TypeModifier <em>Type Modifier</em>}' enum.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.unwiredgrain.modeling.sscm.TypeModifier
	 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTypeModifier()
	 * @generated
	 */
	int TYPE_MODIFIER = 39;

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.Protocol <em>Protocol</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Protocol</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Protocol
	 * @generated
	 */
	EClass getProtocol();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.Protocol#getOperations <em>Operations</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Operations</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Protocol#getOperations()
	 * @see #getProtocol()
	 * @generated
	 */
	EReference getProtocol_Operations();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.InterfaceTemplateInstantiation <em>Interface Template Instantiation</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Interface Template Instantiation</em>'.
	 * @see com.unwiredgrain.modeling.sscm.InterfaceTemplateInstantiation
	 * @generated
	 */
	EClass getInterfaceTemplateInstantiation();

	/**
	 * Returns the meta object for the reference '{@link com.unwiredgrain.modeling.sscm.InterfaceTemplateInstantiation#getInterface <em>Interface</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Interface</em>'.
	 * @see com.unwiredgrain.modeling.sscm.InterfaceTemplateInstantiation#getInterface()
	 * @see #getInterfaceTemplateInstantiation()
	 * @generated
	 */
	EReference getInterfaceTemplateInstantiation_Interface();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.InterfaceTemplateInstantiation#getSubCppArguments <em>Sub Cpp Arguments</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Sub Cpp Arguments</em>'.
	 * @see com.unwiredgrain.modeling.sscm.InterfaceTemplateInstantiation#getSubCppArguments()
	 * @see #getInterfaceTemplateInstantiation()
	 * @generated
	 */
	EReference getInterfaceTemplateInstantiation_SubCppArguments();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.Connector <em>Connector</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Connector</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Connector
	 * @generated
	 */
	EClass getConnector();

	/**
	 * Returns the meta object for the reference '{@link com.unwiredgrain.modeling.sscm.Connector#getPort <em>Port</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Port</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Connector#getPort()
	 * @see #getConnector()
	 * @generated
	 */
	EReference getConnector_Port();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.BasicModule <em>Basic Module</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Basic Module</em>'.
	 * @see com.unwiredgrain.modeling.sscm.BasicModule
	 * @generated
	 */
	EClass getBasicModule();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.Module <em>Module</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Module</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Module
	 * @generated
	 */
	EClass getModule();

	/**
	 * Returns the meta object for the reference '{@link com.unwiredgrain.modeling.sscm.Module#getInterface <em>Interface</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Interface</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Module#getInterface()
	 * @see #getModule()
	 * @generated
	 */
	EReference getModule_Interface();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.CompositeModule <em>Composite Module</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Composite Module</em>'.
	 * @see com.unwiredgrain.modeling.sscm.CompositeModule
	 * @generated
	 */
	EClass getCompositeModule();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.CompositeModule#getSockets <em>Sockets</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Sockets</em>'.
	 * @see com.unwiredgrain.modeling.sscm.CompositeModule#getSockets()
	 * @see #getCompositeModule()
	 * @generated
	 */
	EReference getCompositeModule_Sockets();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.CompositeModule#getOuterConnectors <em>Outer Connectors</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Outer Connectors</em>'.
	 * @see com.unwiredgrain.modeling.sscm.CompositeModule#getOuterConnectors()
	 * @see #getCompositeModule()
	 * @generated
	 */
	EReference getCompositeModule_OuterConnectors();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.CompositeModule#getBindings <em>Bindings</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Bindings</em>'.
	 * @see com.unwiredgrain.modeling.sscm.CompositeModule#getBindings()
	 * @see #getCompositeModule()
	 * @generated
	 */
	EReference getCompositeModule_Bindings();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.Package <em>Package</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Package</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Package
	 * @generated
	 */
	EClass getPackage();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.Package#getClassifiers <em>Classifiers</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Classifiers</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Package#getClassifiers()
	 * @see #getPackage()
	 * @generated
	 */
	EReference getPackage_Classifiers();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.Package#getProtocols <em>Protocols</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Protocols</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Package#getProtocols()
	 * @see #getPackage()
	 * @generated
	 */
	EReference getPackage_Protocols();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.Package#getFacades <em>Facades</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Facades</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Package#getFacades()
	 * @see #getPackage()
	 * @generated
	 */
	EReference getPackage_Facades();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.Package#getModules <em>Modules</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Modules</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Package#getModules()
	 * @see #getPackage()
	 * @generated
	 */
	EReference getPackage_Modules();

	/**
	 * Returns the meta object for the container reference '{@link com.unwiredgrain.modeling.sscm.Package#getSuperPackage <em>Super Package</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the container reference '<em>Super Package</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Package#getSuperPackage()
	 * @see #getPackage()
	 * @generated
	 */
	EReference getPackage_SuperPackage();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.Package#getSubPackages <em>Sub Packages</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Sub Packages</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Package#getSubPackages()
	 * @see #getPackage()
	 * @generated
	 */
	EReference getPackage_SubPackages();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.NamedElement <em>Named Element</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Named Element</em>'.
	 * @see com.unwiredgrain.modeling.sscm.NamedElement
	 * @generated
	 */
	EClass getNamedElement();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.NamedElement#getName <em>Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Name</em>'.
	 * @see com.unwiredgrain.modeling.sscm.NamedElement#getName()
	 * @see #getNamedElement()
	 * @generated
	 */
	EAttribute getNamedElement_Name();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.Classifier <em>Classifier</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Classifier</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Classifier
	 * @generated
	 */
	EClass getClassifier();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.Socket <em>Socket</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Socket</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Socket
	 * @generated
	 */
	EClass getSocket();

	/**
	 * Returns the meta object for the reference '{@link com.unwiredgrain.modeling.sscm.Socket#getInterface <em>Interface</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Interface</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Socket#getInterface()
	 * @see #getSocket()
	 * @generated
	 */
	EReference getSocket_Interface();

	/**
	 * Returns the meta object for the containment reference '{@link com.unwiredgrain.modeling.sscm.Socket#getInterfaceTemplateInstantiation <em>Interface Template Instantiation</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Interface Template Instantiation</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Socket#getInterfaceTemplateInstantiation()
	 * @see #getSocket()
	 * @generated
	 */
	EReference getSocket_InterfaceTemplateInstantiation();

	/**
	 * Returns the meta object for the reference '{@link com.unwiredgrain.modeling.sscm.Socket#getModule <em>Module</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Module</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Socket#getModule()
	 * @see #getSocket()
	 * @generated
	 */
	EReference getSocket_Module();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.Socket#getInnerConnectors <em>Inner Connectors</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Inner Connectors</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Socket#getInnerConnectors()
	 * @see #getSocket()
	 * @generated
	 */
	EReference getSocket_InnerConnectors();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.Socket#isEnabled <em>Enabled</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Enabled</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Socket#isEnabled()
	 * @see #getSocket()
	 * @generated
	 */
	EAttribute getSocket_Enabled();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.TypedElement <em>Typed Element</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Typed Element</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TypedElement
	 * @generated
	 */
	EClass getTypedElement();

	/**
	 * Returns the meta object for the containment reference '{@link com.unwiredgrain.modeling.sscm.TypedElement#getTypeTemplateInstantiation <em>Type Template Instantiation</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Type Template Instantiation</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TypedElement#getTypeTemplateInstantiation()
	 * @see #getTypedElement()
	 * @generated
	 */
	EReference getTypedElement_TypeTemplateInstantiation();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.TypedElement#getModifier <em>Modifier</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Modifier</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TypedElement#getModifier()
	 * @see #getTypedElement()
	 * @generated
	 */
	EAttribute getTypedElement_Modifier();

	/**
	 * Returns the meta object for the reference '{@link com.unwiredgrain.modeling.sscm.TypedElement#getType <em>Type</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Type</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TypedElement#getType()
	 * @see #getTypedElement()
	 * @generated
	 */
	EReference getTypedElement_Type();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.TypedElement#getCppName <em>Cpp Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Cpp Name</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TypedElement#getCppName()
	 * @see #getTypedElement()
	 * @generated
	 */
	EAttribute getTypedElement_CppName();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.TypedElement#getTypeName <em>Type Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Type Name</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TypedElement#getTypeName()
	 * @see #getTypedElement()
	 * @generated
	 */
	EAttribute getTypedElement_TypeName();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.OperationParameter <em>Operation Parameter</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Operation Parameter</em>'.
	 * @see com.unwiredgrain.modeling.sscm.OperationParameter
	 * @generated
	 */
	EClass getOperationParameter();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.Operation <em>Operation</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Operation</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Operation
	 * @generated
	 */
	EClass getOperation();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.Operation#getOperationParameters <em>Operation Parameters</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Operation Parameters</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Operation#getOperationParameters()
	 * @see #getOperation()
	 * @generated
	 */
	EReference getOperation_OperationParameters();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.Operation#getFullName <em>Full Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Full Name</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Operation#getFullName()
	 * @see #getOperation()
	 * @generated
	 */
	EAttribute getOperation_FullName();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.Operation#getDirection <em>Direction</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Direction</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Operation#getDirection()
	 * @see #getOperation()
	 * @generated
	 */
	EAttribute getOperation_Direction();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.Template <em>Template</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Template</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Template
	 * @generated
	 */
	EClass getTemplate();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.Template#getTemplateParameters <em>Template Parameters</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Template Parameters</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Template#getTemplateParameters()
	 * @see #getTemplate()
	 * @generated
	 */
	EReference getTemplate_TemplateParameters();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.Template#isTemplate <em>Template</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Template</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Template#isTemplate()
	 * @see #getTemplate()
	 * @generated
	 */
	EAttribute getTemplate_Template();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.Template#getCppName <em>Cpp Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Cpp Name</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Template#getCppName()
	 * @see #getTemplate()
	 * @generated
	 */
	EAttribute getTemplate_CppName();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.Template#getCppTemplateParameters <em>Cpp Template Parameters</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Cpp Template Parameters</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Template#getCppTemplateParameters()
	 * @see #getTemplate()
	 * @generated
	 */
	EReference getTemplate_CppTemplateParameters();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.TemplateParameter <em>Template Parameter</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Template Parameter</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TemplateParameter
	 * @generated
	 */
	EClass getTemplateParameter();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.TemplateParameter#getCppName <em>Cpp Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Cpp Name</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TemplateParameter#getCppName()
	 * @see #getTemplateParameter()
	 * @generated
	 */
	EAttribute getTemplateParameter_CppName();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.TemplateInstantiation <em>Template Instantiation</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Template Instantiation</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TemplateInstantiation
	 * @generated
	 */
	EClass getTemplateInstantiation();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.TemplateInstantiation#getCppName <em>Cpp Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Cpp Name</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TemplateInstantiation#getCppName()
	 * @see #getTemplateInstantiation()
	 * @generated
	 */
	EAttribute getTemplateInstantiation_CppName();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.TemplateInstantiation#getSubArguments <em>Sub Arguments</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Sub Arguments</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TemplateInstantiation#getSubArguments()
	 * @see #getTemplateInstantiation()
	 * @generated
	 */
	EReference getTemplateInstantiation_SubArguments();

	/**
	 * Returns the meta object for the reference '{@link com.unwiredgrain.modeling.sscm.TemplateInstantiation#getArgument <em>Argument</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Argument</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TemplateInstantiation#getArgument()
	 * @see #getTemplateInstantiation()
	 * @generated
	 */
	EReference getTemplateInstantiation_Argument();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.TypeTemplateParameter <em>Type Template Parameter</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Type Template Parameter</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TypeTemplateParameter
	 * @generated
	 */
	EClass getTypeTemplateParameter();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.NonTypeTemplateParameter <em>Non Type Template Parameter</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Non Type Template Parameter</em>'.
	 * @see com.unwiredgrain.modeling.sscm.NonTypeTemplateParameter
	 * @generated
	 */
	EClass getNonTypeTemplateParameter();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.TypeTemplateInstantiation <em>Type Template Instantiation</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Type Template Instantiation</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TypeTemplateInstantiation
	 * @generated
	 */
	EClass getTypeTemplateInstantiation();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.TypeTemplateInstantiation#getSubCppArguments <em>Sub Cpp Arguments</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Sub Cpp Arguments</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TypeTemplateInstantiation#getSubCppArguments()
	 * @see #getTypeTemplateInstantiation()
	 * @generated
	 */
	EReference getTypeTemplateInstantiation_SubCppArguments();

	/**
	 * Returns the meta object for the reference '{@link com.unwiredgrain.modeling.sscm.TypeTemplateInstantiation#getTypeArgument <em>Type Argument</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Type Argument</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TypeTemplateInstantiation#getTypeArgument()
	 * @see #getTypeTemplateInstantiation()
	 * @generated
	 */
	EReference getTypeTemplateInstantiation_TypeArgument();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.NonTypeTemplateInstantiation <em>Non Type Template Instantiation</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Non Type Template Instantiation</em>'.
	 * @see com.unwiredgrain.modeling.sscm.NonTypeTemplateInstantiation
	 * @generated
	 */
	EClass getNonTypeTemplateInstantiation();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.IntegerValue <em>Integer Value</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Integer Value</em>'.
	 * @see com.unwiredgrain.modeling.sscm.IntegerValue
	 * @generated
	 */
	EClass getIntegerValue();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.IntegerValue#getValue <em>Value</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Value</em>'.
	 * @see com.unwiredgrain.modeling.sscm.IntegerValue#getValue()
	 * @see #getIntegerValue()
	 * @generated
	 */
	EAttribute getIntegerValue_Value();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.Value <em>Value</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Value</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Value
	 * @generated
	 */
	EClass getValue();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.Binding <em>Binding</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Binding</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Binding
	 * @generated
	 */
	EClass getBinding();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.Wire <em>Wire</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Wire</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Wire
	 * @generated
	 */
	EClass getWire();

	/**
	 * Returns the meta object for the reference '{@link com.unwiredgrain.modeling.sscm.Wire#getUser <em>User</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>User</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Wire#getUser()
	 * @see #getWire()
	 * @generated
	 */
	EReference getWire_User();

	/**
	 * Returns the meta object for the reference '{@link com.unwiredgrain.modeling.sscm.Wire#getProvider <em>Provider</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Provider</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Wire#getProvider()
	 * @see #getWire()
	 * @generated
	 */
	EReference getWire_Provider();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.Wire#getUserIndex <em>User Index</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>User Index</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Wire#getUserIndex()
	 * @see #getWire()
	 * @generated
	 */
	EAttribute getWire_UserIndex();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.Wire#getProviderIndex <em>Provider Index</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Provider Index</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Wire#getProviderIndex()
	 * @see #getWire()
	 * @generated
	 */
	EAttribute getWire_ProviderIndex();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.Export <em>Export</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Export</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Export
	 * @generated
	 */
	EClass getExport();

	/**
	 * Returns the meta object for the reference '{@link com.unwiredgrain.modeling.sscm.Export#getInput <em>Input</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Input</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Export#getInput()
	 * @see #getExport()
	 * @generated
	 */
	EReference getExport_Input();

	/**
	 * Returns the meta object for the reference '{@link com.unwiredgrain.modeling.sscm.Export#getOutput <em>Output</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Output</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Export#getOutput()
	 * @see #getExport()
	 * @generated
	 */
	EReference getExport_Output();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.Export#getInnerIndex <em>Inner Index</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Inner Index</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Export#getInnerIndex()
	 * @see #getExport()
	 * @generated
	 */
	EAttribute getExport_InnerIndex();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.Export#getOuterIndex <em>Outer Index</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Outer Index</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Export#getOuterIndex()
	 * @see #getExport()
	 * @generated
	 */
	EAttribute getExport_OuterIndex();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.InnerConnector <em>Inner Connector</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Inner Connector</em>'.
	 * @see com.unwiredgrain.modeling.sscm.InnerConnector
	 * @generated
	 */
	EClass getInnerConnector();

	/**
	 * Returns the meta object for the reference list '{@link com.unwiredgrain.modeling.sscm.InnerConnector#getExports <em>Exports</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference list '<em>Exports</em>'.
	 * @see com.unwiredgrain.modeling.sscm.InnerConnector#getExports()
	 * @see #getInnerConnector()
	 * @generated
	 */
	EReference getInnerConnector_Exports();

	/**
	 * Returns the meta object for the reference list '{@link com.unwiredgrain.modeling.sscm.InnerConnector#getUse <em>Use</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference list '<em>Use</em>'.
	 * @see com.unwiredgrain.modeling.sscm.InnerConnector#getUse()
	 * @see #getInnerConnector()
	 * @generated
	 */
	EReference getInnerConnector_Use();

	/**
	 * Returns the meta object for the reference list '{@link com.unwiredgrain.modeling.sscm.InnerConnector#getProvide <em>Provide</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference list '<em>Provide</em>'.
	 * @see com.unwiredgrain.modeling.sscm.InnerConnector#getProvide()
	 * @see #getInnerConnector()
	 * @generated
	 */
	EReference getInnerConnector_Provide();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.OuterConnector <em>Outer Connector</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Outer Connector</em>'.
	 * @see com.unwiredgrain.modeling.sscm.OuterConnector
	 * @generated
	 */
	EClass getOuterConnector();

	/**
	 * Returns the meta object for the reference list '{@link com.unwiredgrain.modeling.sscm.OuterConnector#getExports <em>Exports</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference list '<em>Exports</em>'.
	 * @see com.unwiredgrain.modeling.sscm.OuterConnector#getExports()
	 * @see #getOuterConnector()
	 * @generated
	 */
	EReference getOuterConnector_Exports();

	/**
	 * Returns the meta object for enum '{@link com.unwiredgrain.modeling.sscm.PortDirection <em>Port Direction</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for enum '<em>Port Direction</em>'.
	 * @see com.unwiredgrain.modeling.sscm.PortDirection
	 * @generated
	 */
	EEnum getPortDirection();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.TemplateArgument <em>Template Argument</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Template Argument</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TemplateArgument
	 * @generated
	 */
	EClass getTemplateArgument();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.TypeTemplateArgument <em>Type Template Argument</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Type Template Argument</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TypeTemplateArgument
	 * @generated
	 */
	EClass getTypeTemplateArgument();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.IntTemplateArgument <em>Int Template Argument</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Int Template Argument</em>'.
	 * @see com.unwiredgrain.modeling.sscm.IntTemplateArgument
	 * @generated
	 */
	EClass getIntTemplateArgument();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.ProtocolTemplateInstantiation <em>Protocol Template Instantiation</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Protocol Template Instantiation</em>'.
	 * @see com.unwiredgrain.modeling.sscm.ProtocolTemplateInstantiation
	 * @generated
	 */
	EClass getProtocolTemplateInstantiation();

	/**
	 * Returns the meta object for the reference '{@link com.unwiredgrain.modeling.sscm.ProtocolTemplateInstantiation#getProtocol <em>Protocol</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Protocol</em>'.
	 * @see com.unwiredgrain.modeling.sscm.ProtocolTemplateInstantiation#getProtocol()
	 * @see #getProtocolTemplateInstantiation()
	 * @generated
	 */
	EReference getProtocolTemplateInstantiation_Protocol();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.ProtocolTemplateInstantiation#getSubCppArguments <em>Sub Cpp Arguments</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Sub Cpp Arguments</em>'.
	 * @see com.unwiredgrain.modeling.sscm.ProtocolTemplateInstantiation#getSubCppArguments()
	 * @see #getProtocolTemplateInstantiation()
	 * @generated
	 */
	EReference getProtocolTemplateInstantiation_SubCppArguments();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.Port <em>Port</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Port</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Port
	 * @generated
	 */
	EClass getPort();

	/**
	 * Returns the meta object for the reference '{@link com.unwiredgrain.modeling.sscm.Port#getProtocol <em>Protocol</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Protocol</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Port#getProtocol()
	 * @see #getPort()
	 * @generated
	 */
	EReference getPort_Protocol();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.Port#getUid <em>Uid</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Uid</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Port#getUid()
	 * @see #getPort()
	 * @generated
	 */
	EAttribute getPort_Uid();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.Port#getDirection <em>Direction</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Direction</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Port#getDirection()
	 * @see #getPort()
	 * @generated
	 */
	EAttribute getPort_Direction();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.Port#isMultiple <em>Multiple</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Multiple</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Port#isMultiple()
	 * @see #getPort()
	 * @generated
	 */
	EAttribute getPort_Multiple();

	/**
	 * Returns the meta object for the containment reference '{@link com.unwiredgrain.modeling.sscm.Port#getProtocolTemplateInstantiation <em>Protocol Template Instantiation</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Protocol Template Instantiation</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Port#getProtocolTemplateInstantiation()
	 * @see #getPort()
	 * @generated
	 */
	EReference getPort_ProtocolTemplateInstantiation();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.Port#isOptional <em>Optional</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Optional</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Port#isOptional()
	 * @see #getPort()
	 * @generated
	 */
	EAttribute getPort_Optional();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.Port#getProtocolName <em>Protocol Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Protocol Name</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Port#getProtocolName()
	 * @see #getPort()
	 * @generated
	 */
	EAttribute getPort_ProtocolName();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.CppTemplateParameter <em>Cpp Template Parameter</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Cpp Template Parameter</em>'.
	 * @see com.unwiredgrain.modeling.sscm.CppTemplateParameter
	 * @generated
	 */
	EClass getCppTemplateParameter();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.Interface <em>Interface</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Interface</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Interface
	 * @generated
	 */
	EClass getInterface();

	/**
	 * Returns the meta object for the containment reference list '{@link com.unwiredgrain.modeling.sscm.Interface#getPorts <em>Ports</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Ports</em>'.
	 * @see com.unwiredgrain.modeling.sscm.Interface#getPorts()
	 * @see #getInterface()
	 * @generated
	 */
	EReference getInterface_Ports();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.CppTemplateInstantiation <em>Cpp Template Instantiation</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Cpp Template Instantiation</em>'.
	 * @see com.unwiredgrain.modeling.sscm.CppTemplateInstantiation
	 * @generated
	 */
	EClass getCppTemplateInstantiation();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.IntTemplateParameter <em>Int Template Parameter</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Int Template Parameter</em>'.
	 * @see com.unwiredgrain.modeling.sscm.IntTemplateParameter
	 * @generated
	 */
	EClass getIntTemplateParameter();

	/**
	 * Returns the meta object for class '{@link com.unwiredgrain.modeling.sscm.IntTemplateInstantiation <em>Int Template Instantiation</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Int Template Instantiation</em>'.
	 * @see com.unwiredgrain.modeling.sscm.IntTemplateInstantiation
	 * @generated
	 */
	EClass getIntTemplateInstantiation();

	/**
	 * Returns the meta object for the containment reference '{@link com.unwiredgrain.modeling.sscm.IntTemplateInstantiation#getIntegerValue <em>Integer Value</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Integer Value</em>'.
	 * @see com.unwiredgrain.modeling.sscm.IntTemplateInstantiation#getIntegerValue()
	 * @see #getIntTemplateInstantiation()
	 * @generated
	 */
	EReference getIntTemplateInstantiation_IntegerValue();

	/**
	 * Returns the meta object for the reference '{@link com.unwiredgrain.modeling.sscm.IntTemplateInstantiation#getIntArgument <em>Int Argument</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Int Argument</em>'.
	 * @see com.unwiredgrain.modeling.sscm.IntTemplateInstantiation#getIntArgument()
	 * @see #getIntTemplateInstantiation()
	 * @generated
	 */
	EReference getIntTemplateInstantiation_IntArgument();

	/**
	 * Returns the meta object for the attribute '{@link com.unwiredgrain.modeling.sscm.IntTemplateInstantiation#getValue <em>Value</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Value</em>'.
	 * @see com.unwiredgrain.modeling.sscm.IntTemplateInstantiation#getValue()
	 * @see #getIntTemplateInstantiation()
	 * @generated
	 */
	EAttribute getIntTemplateInstantiation_Value();

	/**
	 * Returns the meta object for the reference '{@link com.unwiredgrain.modeling.sscm.IntTemplateInstantiation#getIntTemplateParameter <em>Int Template Parameter</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Int Template Parameter</em>'.
	 * @see com.unwiredgrain.modeling.sscm.IntTemplateInstantiation#getIntTemplateParameter()
	 * @see #getIntTemplateInstantiation()
	 * @generated
	 */
	EReference getIntTemplateInstantiation_IntTemplateParameter();

	/**
	 * Returns the meta object for enum '{@link com.unwiredgrain.modeling.sscm.OperationDirection <em>Operation Direction</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for enum '<em>Operation Direction</em>'.
	 * @see com.unwiredgrain.modeling.sscm.OperationDirection
	 * @generated
	 */
	EEnum getOperationDirection();

	/**
	 * Returns the meta object for enum '{@link com.unwiredgrain.modeling.sscm.TypeModifier <em>Type Modifier</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for enum '<em>Type Modifier</em>'.
	 * @see com.unwiredgrain.modeling.sscm.TypeModifier
	 * @generated
	 */
	EEnum getTypeModifier();

	/**
	 * Returns the factory that creates the instances of the model.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the factory that creates the instances of the model.
	 * @generated
	 */
	SSCMFactory getSSCMFactory();

	/**
	 * <!-- begin-user-doc -->
	 * Defines literals for the meta objects that represent
	 * <ul>
	 *   <li>each class,</li>
	 *   <li>each feature of each class,</li>
	 *   <li>each enum,</li>
	 *   <li>and each data type</li>
	 * </ul>
	 * <!-- end-user-doc -->
	 * @generated
	 */
	interface Literals {
		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.ProtocolImpl <em>Protocol</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.ProtocolImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getProtocol()
		 * @generated
		 */
		EClass PROTOCOL = eINSTANCE.getProtocol();

		/**
		 * The meta object literal for the '<em><b>Operations</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PROTOCOL__OPERATIONS = eINSTANCE.getProtocol_Operations();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.InterfaceTemplateInstantiationImpl <em>Interface Template Instantiation</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.InterfaceTemplateInstantiationImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getInterfaceTemplateInstantiation()
		 * @generated
		 */
		EClass INTERFACE_TEMPLATE_INSTANTIATION = eINSTANCE.getInterfaceTemplateInstantiation();

		/**
		 * The meta object literal for the '<em><b>Interface</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference INTERFACE_TEMPLATE_INSTANTIATION__INTERFACE = eINSTANCE.getInterfaceTemplateInstantiation_Interface();

		/**
		 * The meta object literal for the '<em><b>Sub Cpp Arguments</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference INTERFACE_TEMPLATE_INSTANTIATION__SUB_CPP_ARGUMENTS = eINSTANCE.getInterfaceTemplateInstantiation_SubCppArguments();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.ConnectorImpl <em>Connector</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.ConnectorImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getConnector()
		 * @generated
		 */
		EClass CONNECTOR = eINSTANCE.getConnector();

		/**
		 * The meta object literal for the '<em><b>Port</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference CONNECTOR__PORT = eINSTANCE.getConnector_Port();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.BasicModuleImpl <em>Basic Module</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.BasicModuleImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getBasicModule()
		 * @generated
		 */
		EClass BASIC_MODULE = eINSTANCE.getBasicModule();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.ModuleImpl <em>Module</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.ModuleImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getModule()
		 * @generated
		 */
		EClass MODULE = eINSTANCE.getModule();

		/**
		 * The meta object literal for the '<em><b>Interface</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference MODULE__INTERFACE = eINSTANCE.getModule_Interface();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.CompositeModuleImpl <em>Composite Module</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.CompositeModuleImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getCompositeModule()
		 * @generated
		 */
		EClass COMPOSITE_MODULE = eINSTANCE.getCompositeModule();

		/**
		 * The meta object literal for the '<em><b>Sockets</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference COMPOSITE_MODULE__SOCKETS = eINSTANCE.getCompositeModule_Sockets();

		/**
		 * The meta object literal for the '<em><b>Outer Connectors</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference COMPOSITE_MODULE__OUTER_CONNECTORS = eINSTANCE.getCompositeModule_OuterConnectors();

		/**
		 * The meta object literal for the '<em><b>Bindings</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference COMPOSITE_MODULE__BINDINGS = eINSTANCE.getCompositeModule_Bindings();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.PackageImpl <em>Package</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.PackageImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getPackage()
		 * @generated
		 */
		EClass PACKAGE = eINSTANCE.getPackage();

		/**
		 * The meta object literal for the '<em><b>Classifiers</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PACKAGE__CLASSIFIERS = eINSTANCE.getPackage_Classifiers();

		/**
		 * The meta object literal for the '<em><b>Protocols</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PACKAGE__PROTOCOLS = eINSTANCE.getPackage_Protocols();

		/**
		 * The meta object literal for the '<em><b>Facades</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PACKAGE__FACADES = eINSTANCE.getPackage_Facades();

		/**
		 * The meta object literal for the '<em><b>Modules</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PACKAGE__MODULES = eINSTANCE.getPackage_Modules();

		/**
		 * The meta object literal for the '<em><b>Super Package</b></em>' container reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PACKAGE__SUPER_PACKAGE = eINSTANCE.getPackage_SuperPackage();

		/**
		 * The meta object literal for the '<em><b>Sub Packages</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PACKAGE__SUB_PACKAGES = eINSTANCE.getPackage_SubPackages();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.NamedElementImpl <em>Named Element</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.NamedElementImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getNamedElement()
		 * @generated
		 */
		EClass NAMED_ELEMENT = eINSTANCE.getNamedElement();

		/**
		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute NAMED_ELEMENT__NAME = eINSTANCE.getNamedElement_Name();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.ClassifierImpl <em>Classifier</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.ClassifierImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getClassifier()
		 * @generated
		 */
		EClass CLASSIFIER = eINSTANCE.getClassifier();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.SocketImpl <em>Socket</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.SocketImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getSocket()
		 * @generated
		 */
		EClass SOCKET = eINSTANCE.getSocket();

		/**
		 * The meta object literal for the '<em><b>Interface</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference SOCKET__INTERFACE = eINSTANCE.getSocket_Interface();

		/**
		 * The meta object literal for the '<em><b>Interface Template Instantiation</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference SOCKET__INTERFACE_TEMPLATE_INSTANTIATION = eINSTANCE.getSocket_InterfaceTemplateInstantiation();

		/**
		 * The meta object literal for the '<em><b>Module</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference SOCKET__MODULE = eINSTANCE.getSocket_Module();

		/**
		 * The meta object literal for the '<em><b>Inner Connectors</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference SOCKET__INNER_CONNECTORS = eINSTANCE.getSocket_InnerConnectors();

		/**
		 * The meta object literal for the '<em><b>Enabled</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute SOCKET__ENABLED = eINSTANCE.getSocket_Enabled();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.TypedElementImpl <em>Typed Element</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.TypedElementImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTypedElement()
		 * @generated
		 */
		EClass TYPED_ELEMENT = eINSTANCE.getTypedElement();

		/**
		 * The meta object literal for the '<em><b>Type Template Instantiation</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TYPED_ELEMENT__TYPE_TEMPLATE_INSTANTIATION = eINSTANCE.getTypedElement_TypeTemplateInstantiation();

		/**
		 * The meta object literal for the '<em><b>Modifier</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute TYPED_ELEMENT__MODIFIER = eINSTANCE.getTypedElement_Modifier();

		/**
		 * The meta object literal for the '<em><b>Type</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TYPED_ELEMENT__TYPE = eINSTANCE.getTypedElement_Type();

		/**
		 * The meta object literal for the '<em><b>Cpp Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute TYPED_ELEMENT__CPP_NAME = eINSTANCE.getTypedElement_CppName();

		/**
		 * The meta object literal for the '<em><b>Type Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute TYPED_ELEMENT__TYPE_NAME = eINSTANCE.getTypedElement_TypeName();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.OperationParameterImpl <em>Operation Parameter</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.OperationParameterImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getOperationParameter()
		 * @generated
		 */
		EClass OPERATION_PARAMETER = eINSTANCE.getOperationParameter();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.OperationImpl <em>Operation</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.OperationImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getOperation()
		 * @generated
		 */
		EClass OPERATION = eINSTANCE.getOperation();

		/**
		 * The meta object literal for the '<em><b>Operation Parameters</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference OPERATION__OPERATION_PARAMETERS = eINSTANCE.getOperation_OperationParameters();

		/**
		 * The meta object literal for the '<em><b>Full Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute OPERATION__FULL_NAME = eINSTANCE.getOperation_FullName();

		/**
		 * The meta object literal for the '<em><b>Direction</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute OPERATION__DIRECTION = eINSTANCE.getOperation_Direction();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.TemplateImpl <em>Template</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.TemplateImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTemplate()
		 * @generated
		 */
		EClass TEMPLATE = eINSTANCE.getTemplate();

		/**
		 * The meta object literal for the '<em><b>Template Parameters</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TEMPLATE__TEMPLATE_PARAMETERS = eINSTANCE.getTemplate_TemplateParameters();

		/**
		 * The meta object literal for the '<em><b>Template</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute TEMPLATE__TEMPLATE = eINSTANCE.getTemplate_Template();

		/**
		 * The meta object literal for the '<em><b>Cpp Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute TEMPLATE__CPP_NAME = eINSTANCE.getTemplate_CppName();

		/**
		 * The meta object literal for the '<em><b>Cpp Template Parameters</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TEMPLATE__CPP_TEMPLATE_PARAMETERS = eINSTANCE.getTemplate_CppTemplateParameters();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.TemplateParameterImpl <em>Template Parameter</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.TemplateParameterImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTemplateParameter()
		 * @generated
		 */
		EClass TEMPLATE_PARAMETER = eINSTANCE.getTemplateParameter();

		/**
		 * The meta object literal for the '<em><b>Cpp Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute TEMPLATE_PARAMETER__CPP_NAME = eINSTANCE.getTemplateParameter_CppName();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.TemplateInstantiationImpl <em>Template Instantiation</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.TemplateInstantiationImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTemplateInstantiation()
		 * @generated
		 */
		EClass TEMPLATE_INSTANTIATION = eINSTANCE.getTemplateInstantiation();

		/**
		 * The meta object literal for the '<em><b>Cpp Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute TEMPLATE_INSTANTIATION__CPP_NAME = eINSTANCE.getTemplateInstantiation_CppName();

		/**
		 * The meta object literal for the '<em><b>Sub Arguments</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TEMPLATE_INSTANTIATION__SUB_ARGUMENTS = eINSTANCE.getTemplateInstantiation_SubArguments();

		/**
		 * The meta object literal for the '<em><b>Argument</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TEMPLATE_INSTANTIATION__ARGUMENT = eINSTANCE.getTemplateInstantiation_Argument();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.TypeTemplateParameterImpl <em>Type Template Parameter</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.TypeTemplateParameterImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTypeTemplateParameter()
		 * @generated
		 */
		EClass TYPE_TEMPLATE_PARAMETER = eINSTANCE.getTypeTemplateParameter();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.NonTypeTemplateParameterImpl <em>Non Type Template Parameter</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.NonTypeTemplateParameterImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getNonTypeTemplateParameter()
		 * @generated
		 */
		EClass NON_TYPE_TEMPLATE_PARAMETER = eINSTANCE.getNonTypeTemplateParameter();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.TypeTemplateInstantiationImpl <em>Type Template Instantiation</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.TypeTemplateInstantiationImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTypeTemplateInstantiation()
		 * @generated
		 */
		EClass TYPE_TEMPLATE_INSTANTIATION = eINSTANCE.getTypeTemplateInstantiation();

		/**
		 * The meta object literal for the '<em><b>Sub Cpp Arguments</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TYPE_TEMPLATE_INSTANTIATION__SUB_CPP_ARGUMENTS = eINSTANCE.getTypeTemplateInstantiation_SubCppArguments();

		/**
		 * The meta object literal for the '<em><b>Type Argument</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TYPE_TEMPLATE_INSTANTIATION__TYPE_ARGUMENT = eINSTANCE.getTypeTemplateInstantiation_TypeArgument();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.NonTypeTemplateInstantiationImpl <em>Non Type Template Instantiation</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.NonTypeTemplateInstantiationImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getNonTypeTemplateInstantiation()
		 * @generated
		 */
		EClass NON_TYPE_TEMPLATE_INSTANTIATION = eINSTANCE.getNonTypeTemplateInstantiation();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.IntegerValueImpl <em>Integer Value</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.IntegerValueImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getIntegerValue()
		 * @generated
		 */
		EClass INTEGER_VALUE = eINSTANCE.getIntegerValue();

		/**
		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute INTEGER_VALUE__VALUE = eINSTANCE.getIntegerValue_Value();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.ValueImpl <em>Value</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.ValueImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getValue()
		 * @generated
		 */
		EClass VALUE = eINSTANCE.getValue();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.BindingImpl <em>Binding</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.BindingImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getBinding()
		 * @generated
		 */
		EClass BINDING = eINSTANCE.getBinding();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.WireImpl <em>Wire</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.WireImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getWire()
		 * @generated
		 */
		EClass WIRE = eINSTANCE.getWire();

		/**
		 * The meta object literal for the '<em><b>User</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference WIRE__USER = eINSTANCE.getWire_User();

		/**
		 * The meta object literal for the '<em><b>Provider</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference WIRE__PROVIDER = eINSTANCE.getWire_Provider();

		/**
		 * The meta object literal for the '<em><b>User Index</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute WIRE__USER_INDEX = eINSTANCE.getWire_UserIndex();

		/**
		 * The meta object literal for the '<em><b>Provider Index</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute WIRE__PROVIDER_INDEX = eINSTANCE.getWire_ProviderIndex();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.ExportImpl <em>Export</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.ExportImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getExport()
		 * @generated
		 */
		EClass EXPORT = eINSTANCE.getExport();

		/**
		 * The meta object literal for the '<em><b>Input</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference EXPORT__INPUT = eINSTANCE.getExport_Input();

		/**
		 * The meta object literal for the '<em><b>Output</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference EXPORT__OUTPUT = eINSTANCE.getExport_Output();

		/**
		 * The meta object literal for the '<em><b>Inner Index</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute EXPORT__INNER_INDEX = eINSTANCE.getExport_InnerIndex();

		/**
		 * The meta object literal for the '<em><b>Outer Index</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute EXPORT__OUTER_INDEX = eINSTANCE.getExport_OuterIndex();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.InnerConnectorImpl <em>Inner Connector</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.InnerConnectorImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getInnerConnector()
		 * @generated
		 */
		EClass INNER_CONNECTOR = eINSTANCE.getInnerConnector();

		/**
		 * The meta object literal for the '<em><b>Exports</b></em>' reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference INNER_CONNECTOR__EXPORTS = eINSTANCE.getInnerConnector_Exports();

		/**
		 * The meta object literal for the '<em><b>Use</b></em>' reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference INNER_CONNECTOR__USE = eINSTANCE.getInnerConnector_Use();

		/**
		 * The meta object literal for the '<em><b>Provide</b></em>' reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference INNER_CONNECTOR__PROVIDE = eINSTANCE.getInnerConnector_Provide();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.OuterConnectorImpl <em>Outer Connector</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.OuterConnectorImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getOuterConnector()
		 * @generated
		 */
		EClass OUTER_CONNECTOR = eINSTANCE.getOuterConnector();

		/**
		 * The meta object literal for the '<em><b>Exports</b></em>' reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference OUTER_CONNECTOR__EXPORTS = eINSTANCE.getOuterConnector_Exports();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.PortDirection <em>Port Direction</em>}' enum.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.PortDirection
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getPortDirection()
		 * @generated
		 */
		EEnum PORT_DIRECTION = eINSTANCE.getPortDirection();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.TemplateArgument <em>Template Argument</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.TemplateArgument
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTemplateArgument()
		 * @generated
		 */
		EClass TEMPLATE_ARGUMENT = eINSTANCE.getTemplateArgument();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.TypeTemplateArgument <em>Type Template Argument</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.TypeTemplateArgument
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTypeTemplateArgument()
		 * @generated
		 */
		EClass TYPE_TEMPLATE_ARGUMENT = eINSTANCE.getTypeTemplateArgument();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.IntTemplateArgument <em>Int Template Argument</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.IntTemplateArgument
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getIntTemplateArgument()
		 * @generated
		 */
		EClass INT_TEMPLATE_ARGUMENT = eINSTANCE.getIntTemplateArgument();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.ProtocolTemplateInstantiationImpl <em>Protocol Template Instantiation</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.ProtocolTemplateInstantiationImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getProtocolTemplateInstantiation()
		 * @generated
		 */
		EClass PROTOCOL_TEMPLATE_INSTANTIATION = eINSTANCE.getProtocolTemplateInstantiation();

		/**
		 * The meta object literal for the '<em><b>Protocol</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PROTOCOL_TEMPLATE_INSTANTIATION__PROTOCOL = eINSTANCE.getProtocolTemplateInstantiation_Protocol();

		/**
		 * The meta object literal for the '<em><b>Sub Cpp Arguments</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PROTOCOL_TEMPLATE_INSTANTIATION__SUB_CPP_ARGUMENTS = eINSTANCE.getProtocolTemplateInstantiation_SubCppArguments();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.PortImpl <em>Port</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.PortImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getPort()
		 * @generated
		 */
		EClass PORT = eINSTANCE.getPort();

		/**
		 * The meta object literal for the '<em><b>Protocol</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PORT__PROTOCOL = eINSTANCE.getPort_Protocol();

		/**
		 * The meta object literal for the '<em><b>Uid</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute PORT__UID = eINSTANCE.getPort_Uid();

		/**
		 * The meta object literal for the '<em><b>Direction</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute PORT__DIRECTION = eINSTANCE.getPort_Direction();

		/**
		 * The meta object literal for the '<em><b>Multiple</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute PORT__MULTIPLE = eINSTANCE.getPort_Multiple();

		/**
		 * The meta object literal for the '<em><b>Protocol Template Instantiation</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PORT__PROTOCOL_TEMPLATE_INSTANTIATION = eINSTANCE.getPort_ProtocolTemplateInstantiation();

		/**
		 * The meta object literal for the '<em><b>Optional</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute PORT__OPTIONAL = eINSTANCE.getPort_Optional();

		/**
		 * The meta object literal for the '<em><b>Protocol Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute PORT__PROTOCOL_NAME = eINSTANCE.getPort_ProtocolName();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.CppTemplateParameterImpl <em>Cpp Template Parameter</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.CppTemplateParameterImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getCppTemplateParameter()
		 * @generated
		 */
		EClass CPP_TEMPLATE_PARAMETER = eINSTANCE.getCppTemplateParameter();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.InterfaceImpl <em>Interface</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.InterfaceImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getInterface()
		 * @generated
		 */
		EClass INTERFACE = eINSTANCE.getInterface();

		/**
		 * The meta object literal for the '<em><b>Ports</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference INTERFACE__PORTS = eINSTANCE.getInterface_Ports();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.CppTemplateInstantiationImpl <em>Cpp Template Instantiation</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.CppTemplateInstantiationImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getCppTemplateInstantiation()
		 * @generated
		 */
		EClass CPP_TEMPLATE_INSTANTIATION = eINSTANCE.getCppTemplateInstantiation();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.IntTemplateParameterImpl <em>Int Template Parameter</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.IntTemplateParameterImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getIntTemplateParameter()
		 * @generated
		 */
		EClass INT_TEMPLATE_PARAMETER = eINSTANCE.getIntTemplateParameter();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.impl.IntTemplateInstantiationImpl <em>Int Template Instantiation</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.impl.IntTemplateInstantiationImpl
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getIntTemplateInstantiation()
		 * @generated
		 */
		EClass INT_TEMPLATE_INSTANTIATION = eINSTANCE.getIntTemplateInstantiation();

		/**
		 * The meta object literal for the '<em><b>Integer Value</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference INT_TEMPLATE_INSTANTIATION__INTEGER_VALUE = eINSTANCE.getIntTemplateInstantiation_IntegerValue();

		/**
		 * The meta object literal for the '<em><b>Int Argument</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference INT_TEMPLATE_INSTANTIATION__INT_ARGUMENT = eINSTANCE.getIntTemplateInstantiation_IntArgument();

		/**
		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute INT_TEMPLATE_INSTANTIATION__VALUE = eINSTANCE.getIntTemplateInstantiation_Value();

		/**
		 * The meta object literal for the '<em><b>Int Template Parameter</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference INT_TEMPLATE_INSTANTIATION__INT_TEMPLATE_PARAMETER = eINSTANCE.getIntTemplateInstantiation_IntTemplateParameter();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.OperationDirection <em>Operation Direction</em>}' enum.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.OperationDirection
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getOperationDirection()
		 * @generated
		 */
		EEnum OPERATION_DIRECTION = eINSTANCE.getOperationDirection();

		/**
		 * The meta object literal for the '{@link com.unwiredgrain.modeling.sscm.TypeModifier <em>Type Modifier</em>}' enum.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.unwiredgrain.modeling.sscm.TypeModifier
		 * @see com.unwiredgrain.modeling.sscm.impl.SSCMPackageImpl#getTypeModifier()
		 * @generated
		 */
		EEnum TYPE_MODIFIER = eINSTANCE.getTypeModifier();

	}

} //SSCMPackage
